package mtest.day1;

public class Demo3 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte) i;
        System.out.println(i); // 内存溢出
        System.out.println(b);
        //128
        //-128
        double b2 = i;
        System.out.println(b2); // 128.0
        //强制转化 （类型）变量名 高 -》低
        // 自动转化 低 -》 高
        /*
        注意点：
        1.不能对布尔值转化
        不能把对象类型转化为不相干的类型
        把高容量转换到低容量的时候，强制转化
        转化的时候可能出现内存溢出，精度问题
         */
        char c = 'a';
        int d = c + 1;
        System.out.println(d); //98
        System.out.println((char) d); //b

        System.out.println("************************");
        //操作比较大的数时，注意溢出问题
        // jdk7 新特性 数字之间可以使用下划线分割
        int moeny = 10_0000_0000;
        System.out.println(moeny);
        int years = 20;
        int total = moeny * years; // 计算的时候溢出了
        System.out.println(total); //-1474836480
        // 提升类型
        long total2 = moeny * ((long)years);
        System.out.println(total2); //20000000000
        // L l
    }
}
